//3226. 使两个整数相等的位更改次数
class Solution {
public:
    int minChanges(int n, int k) {
        // int tem=n&(~k);
        // int count=0;
        // while(tem)
        // {
        //     count++;
        //     tem&=(tem-1);
        // }
        // if(count>16)
        //     return 32-16;
        // return count;
        int count=0;
        for(int i=0;i<32;i++)
        {
            int temn=n>>i&1;
            int temk=k>>i&1;
            if(temn!=temk)
            {
                if(temn==0)
                    return -1;
                else
                    count++;
            }
        }
        return count;
    }
};

//3216. 交换后字典序最小的字符串
class Solution {
public:
    string getSmallestString(string s) {
        for(int i=0;i<s.size()-1;i++)
        {
            if(s[i]%2==s[i+1]%2)
            {
                if(s[i]>s[i+1])
                {
                    swap(s[i],s[i+1]);
                    break;
                }

            }
        }
        return s;
    }
    
};